Ext.define('TS.controller.Bible', {
	extend: 'Ext.app.Controller',

	// TODO - requireowac modele itp na onShow
	// TODO - zaczac mysle o łaczenii bibliotek (w parametrze lista klas w odpowiedzi jedn plik paczka wszystkich; (ext/required))
	models: [// TODO zgrupowac słowniki z kodami (do słownika)
		'Bible','Book','Chapter','BibleBook',
		'Verse','BibleVerse','Testament'
	],
	stores: [
	    'Bible','Book','Chapter','BibleBook',
	    'Verse','BibleVerse','Testament'
	],
	views: [
		'bible.Panel'
	],
	
	init: function() {
		this.control({
			'viewport > tabpanel' : {
               render: this.onStart,
               tabchange:this.onShow
            }
		});
	},
	
	onStart:function(tabpanel,x){
		tabpanel.add({xtype:'biblepanel'});
	},
	
	onShow:function(tabpanel,tab){

		if(tab.xtype=='biblepanel' && tab.items.length==0){

			Util.require([
			      'bible.Form','bible.Grid',
			      'book.Form','book.Grid',
			      'chapter.Form','chapter.Grid',
			      'biblebook.Form','biblebook.Grid',
			      'verse.Form','verse.Grid',
			      'bibleverse.Form','bibleverse.Grid','bibleverse.MultiForm',
			      'testament.Form','testament.Grid'
			],function(){
				tab.add(
					Factory.layout.duoTab('Tłumaczenia','bible'),
					Factory.layout.duoTab('Księgi','book'),
					Factory.layout.duoTab('Rozdziały','chapter'),
					Factory.layout.duoTab('Testamenty','testament'),
					Factory.layout.duoTab('Tłumaczenia ksiąg','biblebook'),
					Factory.layout.duoTab('Wersy','verse'),
					Factory.layout.duoTab('Wersy w tłumaczeniach','bibleverse'),
					{xtype:'bibleversemultiform'}
				);
				Util.s.fillEach(
					Dict.bible,Dict.language,Dict.book,Dict.testament,
					Dict.chapter,Dict.biblebook
					,Dict.verse,Dict.bibleverse
				);
				
			},'TS.view.bible');			
		};
	},
	
	util:{
		
	}
});